package com.test.javafaq_search.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
//@Document表示当前类对应一个索引,每一个对象是这个索引的一篇文档
//indexName 指定的是索引名称
@Document(indexName = "items")
public class Item implements Serializable {

    //@Id表示下面的属性是该文档的主键
    @Id
    private Long id;
    //@Field表示下面的属性在ES文档中的类型,如果需要特殊分词,配置分词器
    @Field(type = FieldType.Text,analyzer = "ik_smart",searchAnalyzer = "ik_smart")
    private String title;


    //Keyword表示这个类型不分词
    @Field(type = FieldType.Keyword)
    private String category;
    @Field(type = FieldType.Keyword)
    private String brand;
    @Field(type = FieldType.Double)
    private Double price;
    //不生成这个列的索引,因为这个列不会是查询数据的依据
    @Field(type = FieldType.Keyword,index = false)
    private String images;
}
